package com.ltkj.baseplatform.service;

import com.ltkj.baseplatform.domain.ArtContent;
import com.ltkj.baseplatform.domain.SerCollectData;
import com.ltkj.baseplatform.domain.SerCommentData;
import com.ltkj.baseplatform.domain.bo.ArtContentBo;
import com.ltkj.baseplatform.domain.bo.ArtContentQueryBo;
import com.ltkj.baseplatform.domain.vo.ArtContentVo;
import com.ltkj.baseplatform.domain.vo.SerCollectDataVo;

import java.util.List;

/**
 * 文章内容Service接口
 * 
 * @author liupf
 * @date 2023-08-28
 */
public interface IArtContentService 
{
    /**
     * 查询文章内容
     * 
     * @param id 文章内容主键
     * @return 文章内容
     */
    public ArtContentVo selectArtContentById(Long id);

    ArtContent selectContentById(Long id);

    /**
     * 查询文章内容列表
     * 
     * @param artContent 文章内容
     * @return 文章内容集合
     */
    public List<ArtContent> selectArtContentList(ArtContent artContent);

    /**
     * 新增文章内容
     * 
     * @param artContentBo 文章内容
     * @return 结果
     */
    public int insertArtContent(ArtContentBo artContentBo);

    /**
     * 修改文章内容
     * 
     * @param artContentBo 文章内容
     * @return 结果
     */
    public int updateArtContent(ArtContentBo artContentBo);

    /**
     * 批量删除文章内容
     * 
     * @param ids 需要删除的文章内容主键集合
     * @return 结果
     */
    public int deleteArtContentByIds(Long[] ids);

    /**
     * 删除文章内容信息
     * 
     * @param id 文章内容主键
     * @return 结果
     */
    public int deleteArtContentById(Long id);

    /**
     * 将传入的文章数据放入回收站
     *
     * @param ids id集合
     * @return 结果
     */
    int recycle(Long[] ids,List<ArtContent> list);

    /**
     * 根据id集合查询文章列表
     *
     * @param ids 文章id集合
     * @return 文章管理-文章集合
     */
    List<ArtContent> selectArtContentListByIds(Long[] ids);

    /**
     * 使用查询参数查询文章管理-文章列表
     *
     * @param artContentQueryBo 查询参数
     * @return 文章管理-文章集合
     */
    List<ArtContentVo> selectArtContentList(ArtContentQueryBo artContentQueryBo);

    /**
     * 使用查询参数查询文章管理-文章列表
     *
     * @param artContentQueryBo 查询参数
     * @return 文章管理-文章集合
     */
    List<ArtContentVo> selectSubChannelContentList(ArtContentQueryBo artContentQueryBo);

    /**
     * 更新内容的浏览量+1
     *
     * @param id 内容id
     * @return 结果
     */
    int updateReadNum(Long id);
    /**
     * 更新内容的评论量
     *
     * @param id 内容id
     * @return 结果
     */
    int updateCommentNum(Integer num, Long id);
    /**
     * 更新内容的收藏量
     *
     * @param id 内容id
     * @return 结果
     */
    int updateCollectNum(Integer num, Long id);
    /**
     * 更新内容的点赞量
     *
     * @param id 内容id
     * @return 结果
     */
    int updateLikeNum(Integer num, Long id);

    int addLikes(Long id);

    int cancelLikes(Long id);

    int addCollect(SerCollectData serCollectData);

    int cancelColect(Long id);

    int publishComment(SerCommentData serCommentData);

    int deleteComment(Long id);

    //查询我的收藏列表
    List<SerCollectDataVo> selectSerCollectDataList();


}
